# -*- coding: utf-8 -*-
"""
@Time    : 2024/7/13 13:49 
@Author  : ZhangShenao 
@File    : reference_count.py 
@Desc    : CPython采用引用计数法来管理内存

CPython使用引用计数法来管理内存
所有Python脚本中创建的实例,都会有一个引用计数,来记录有多少个指针指向它
当引用计数为0时,垃圾收集器会自动回收实例所占用的内存

"""
import sys


def print_reference_count() -> None:
    """
    打印对象的引用计数
    """

    # a的引用计数是3
    # 因为 a、b和作为参数传递的getrefcount这三个地方,都引用了一个空列表
    a = []
    b = a
    ref_count = sys.getrefcount(a)
    print(f'reference count of a is {ref_count}')  # reference count of a is 3


if __name__ == '__main__':
    print_reference_count()
